HAL DCMI IRQ handler and callbacks functions migration ¶
This section provides information about the HAL DCMI callbacks register/unregister functions migration.
HAL DCMI Callbacks functions ¶
|
Title |
HAL1 |
HAL2 |
|---|---|---|
|
Vsync Event Callback |
void HAL_DCMI_VsyncEventCallback(DCMI_HandleTypeDef *hdcmi);
|
void HAL_DCMI_PipeVsyncEventCallback(hal_dcmi_handle_t *hdcmi,
hal_dcmi_pipe_t pipe);
|
|
Hsync Callback |
void HAL_DCMI_HsyncCallback(DCMI_HandleTypeDef *hdcmi);
|
Not yet implemented in HAL2. |
|
Vsync Callback |
void HAL_DCMI_VsyncCallback(DCMI_HandleTypeDef *hdcmi);
|
Not yet implemented in HAL2. |
|
Error Callback |
void HAL_DCMI_ErrorCallback(DCMI_HandleTypeDef *hdcmi);
|
void HAL_DCMI_ErrorCallback(hal_dcmi_handle_t *hdcmi);
void HAL_DCMI_PipeErrorCallback(hal_dcmi_handle_t *hdcmi,
hal_dcmi_pipe_t pipe);
|
|
Frame event Callback |
void HAL_DCMI_FrameEventCallback(DCMI_HandleTypeDef *hdcmi);
|
void HAL_DCMI_PipeFrameEventCallback(hal_dcmi_handle_t *hdcmi,
hal_dcmi_pipe_t pipe);
|
|
Line event Callback |
void HAL_DCMI_LineEventCallback(DCMI_HandleTypeDef *hdcmi);
|
void HAL_DCMI_PipeLineEventCallback(hal_dcmi_handle_t *hdcmi,
hal_dcmi_pipe_t pipe);
|
HAL DCMI register callback functions ¶
In HAL1, the function
HAL_DCMI_RegisterCallback
is used to register various DCMI callbacks through a single function with a specific callback ID, whereas, in HAL2, distinct functions are available to register each specific DCMI callback.
|
HAL 1 |
HAL 2 |
|
|---|---|---|
|
DCMI Pipe Frame Event callback |
HAL_DCMI_RegisterCallback(&hdcmi,
HAL_DCMI_FRAME_EVENT_CB_ID,
USER_DCMI_FrameEventCallback);
|
HAL_DCMI_RegisterPipeFrameEventCallback(&hdcmi,
HAL_DCMI_PIPE_0,
USER_DCMI_PipeFrameEventCallback);
|
|
DCMI Pipe VSYNC Event callback |
HAL_DCMI_RegisterCallback(&hdcmi,
HAL_DCMI_VSYNC_EVENT_CB_ID,
USER_DCMI_VsyncEventCallback);
|
HAL_DCMI_RegisterPipeVsyncEventCallback(&hdcmi,
HAL_DCMI_PIPE_0,
USER_DCMI_PipeVsyncEventCallback);
|
|
DCMI Pipe Line Event callback |
HAL_DCMI_RegisterCallback(&hdcmi,
HAL_DCMI_LINE_EVENT_CB_ID,
USER_DCMI_LineEventCallback);
|
HAL_DCMI_RegisterPipeLineEventCallback(&hdcmi,
HAL_DCMI_PIPE_0,
USER_DCMI_PipeLineEventCallback);
|
|
DCMI Pipe Error callback |
HAL_DCMI_RegisterCallback(&hdcmi,
HAL_DCMI_ERROR_CB_ID,
USER_DCMI_ErrorCallback);
|
HAL_DCMI_RegisterPipeErrorCallback(&hdcmi,
HAL_DCMI_PIPE_0,
USER_DCMI_PipeErrorCallback);
|
|
DCMI error callback |
HAL_DCMI_RegisterCallback(&hdcmi,
HAL_DCMI_ERROR_CB_ID,
USER_DCMI_ErrorCallback);
|
HAL_DCMI_RegisterErrorCallback(&hdcmi,
USER_DCMI_ErrorCallback);
|
|
DCMI Msp Init Callback |
HAL_DCMI_RegisterCallback(&hdcmi,
HAL_DCMI_MSPINIT_CB_ID,
USER_DCMI_MspInitCallback);
|
/* Removed / Sequence changed */
|
|
DCMI Msp DeInit Callback |
HAL_DCMI_RegisterCallback(&hdcmi,
HAL_DCMI_MSPDEINIT_CB_ID,
USER_DCMI_MspDeInitCallback);
|
/* Removed / Sequence changed */
|
Related concept:
Individual callback registration APIs replace global register and unregister functions
HAL DCMI unregister callback functions ¶
In HAL2, the unregister callback API has been removed. Instead, callbacks can be managed by re-registering the default HAL DCMI weak callbacks as needed.
|
HAL 1 |
HAL 2 |
|
|---|---|---|
|
DCMI Pipe Frame Event callback |
HAL_DCMI_UnRegisterCallback(&hdcmi,
HAL_DCMI_FRAME_EVENT_CB_ID);
|
HAL_DCMI_RegisterPipeFrameEventCallback(&hdcmi,
HAL_DCMI_PIPE_0,
HAL_DCMI_PipeFrameEventCallback);
|
|
DCMI Pipe VSYNC Event callback |
HAL_DCMI_UnRegisterCallback(&hdcmi,
HAL_DCMI_VSYNC_EVENT_CB_ID);
|
HAL_DCMI_RegisterPipeVsyncEventCallback(&hdcmi,
HAL_DCMI_PIPE_0,
HAL_DCMI_PipeVsyncEventCallback);
|
|
DCMI Pipe Line Event callback |
HAL_DCMI_UnRegisterCallback(&hdcmi,
HAL_DCMI_LINE_EVENT_CB_ID);
|
HAL_DCMI_RegisterPipeLineEventCallback(&hdcmi,
HAL_DCMI_PIPE_0,
HAL_DCMI_PipeLineEventCallback);
|
|
DCMI Pipe Error callback |
HAL_DCMI_UnRegisterCallback(&hdcmi,
HAL_DCMI_ERROR_CB_ID);
|
HAL_DCMI_RegisterPipeErrorCallback(&hdcmi,
HAL_DCMI_PIPE_0,
HAL_DCMI_PipeErrorCallback);
|
|
DCMI error callback |
HAL_DCMI_UnRegisterCallback(&hdcmi,
HAL_DCMI_ERROR_CB_ID);
|
HAL_DCMI_RegisterErrorCallback(&hdcmi,
HAL_DCMI_ErrorCallback);
|
|
DCMI Msp Init Callback |
HAL_DCMI_UnRegisterCallback(&hdcmi,
HAL_DCMI_MSPINIT_CB_ID);
|
/* Removed / Sequence changed */
|
|
DCMI Msp DeInit Callback |
HAL_DCMI_UnRegisterCallback(&hdcmi,
HAL_DCMI_MSPDEINIT_CB_ID);
|
/* Removed / Sequence changed */
|
Related concept:
Individual callback registration APIs replace global register and unregister functions
HAL DCMI IRQ handlers ¶
|
HAL1 |
HAL2 |
|
|---|---|---|
|
Function prototype |
void HAL_DCMI_IRQHandler(void);
|
void HAL_DCMI_IRQHandler(hal_dcmi_handle_t *hdcmi);
|